//模板字符串
//传统的字符串并不支持换行，如果我们的字符串有换行符我们需要用/n字符来表示。
//在最新的模板字符串中，他可以支持多行字符串可以在模板中直接进行换行
// const str = `hello es2015 
// this is a string`
// console.log(str)


//通过插值表达式来嵌入字符串所对应的数值，不仅可以嵌入变量，还可以嵌入任何标准的js语句
// const name = "tom"
// const str = `HEY ${name}---${1+1} ----${true?0:1} --- ${Math.random()}`
// console.log(str)//HEY tom---2 ----0 --- 0.22368499859594526
//带标签的模板字符串
//标签实际上市一个特殊的函数，添加这个标签就是调用这个函数
const str = console.log`hello word`//[ 'hello word' ]

const name = "tom"
const gender = true
function myTagFunc(strings,name,gender){
// console.log(strings)//[ 'HEY, ', ' IS A ', '.' ] 按照表达式分割过后静态的内容,所以他是一个数组
// console.log(name,gender)//tom true
   const sex = gender? "man" : "woman"
   return strings[0] + name +strings[1]+ sex + strings[2]
}

const result = myTagFunc`HEY, ${name} IS A ${gender}.`
console.log(result)
//标签的函数还可以接受到所有这个模板字符串表达式的返回值，比如：name gender

